home *** CD-ROM | disk | FTP | other *** search
- #include <conio.h>
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
-
- #define u_int unsigned int
- #define ON (-1)
- #define OFF (0)
- #define DEBUG
-
- char Myname[9]; /* Target command name. It has to be inticalized in main(). */
-
- void print_usage(void)
- {
- puts("Check key input in console. ver 1.0 93/2/26");
- printf("usage: %s [-hv]\n", Myname);
- puts(" -h Print this help message");
- puts(" -v Print input key");
- }
-
- char *short_name(char *name, char *path)
- {
- char *p, *pp;
-
- pp = name;
- if ((p = strrchr(path, '/')) == NULL) {
- if (path[1] == ':')
- p = &path[2];
- else
- p = path;
- } else
- p++;
-
- while (*p != '.' && *p != '\0') {
- *name = *p;
- p++;
- name++;
- }
- *name = '\0';
- return pp;
- }
-
- /* version non-suported two bytes code */
- char *replace_str(char *s, int c1, int c2)
- {
- char *p;
-
- for (p=s; *p != '\0'; p++)
- if (*p == (char) c1)
- *p = (char) c2;
- return s;
- }
-
- int main(int argc, char **argv)
- {
- int Flag_v = OFF;
- int c;
-
- replace_str(argv[0], '\\', '/');
- short_name(argv[0], Myname);
-
- if (argc == 2) {
- if (argv[1][0] == '-' || argv[1][0] == '/') {
- if (argv[1][1] == 'h') {
- print_usage();
- exit(EXIT_SUCCESS);
- } else if (argv[1][1] == 'v') {
- Flag_v = ON;
- }
- } else {
- fprintf(stderr, "Option Error!\n");
- print_usage();
- exit(EXIT_FAILURE);
- }
- } else if (argc > 2) {
- fprintf(stderr, "Too many options!\n");
- print_usage();
- exit(EXIT_FAILURE);
- }
-
- if (kbhit()) {
- if (Flag_v) {
- c = getche();
- } else {
- c = getch();
- }
- #ifdef DEBUG
- fprintf(stderr, "Return code is %x.\n", (u_int) c);
- #endif
- return c;
- } else {
- return 0;
- }
- }
-
-